package main.java.servlet;

import main.java.utils.Student;
import main.java.utils.StudentManager;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet("/addStu")
public class StudentServlet extends HttpServlet {

    /**
     * 注意：
     * 如果不重写service方法，那么HttpServlet会根据我们 的请求方式自动转发到doGet或者DoPost;
     * 如果我们重写了service方法，那么就需要我们手动根据请求的路径来指定调用哪个方法。
     * @param req
     * @param res
     * @throws ServletException
     * @throws IOException
     */
    public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException{
        System.out.println("doGet init");// 控制台输出
        // 获取参数
        //处理参数，入库，查库等
        // 处理完成后，页面跳转

        res.getWriter().write("hello,get"); //给浏览器一个响应
    }

    /**
     * 处理添加学生请求。当添加学生页面输入完信息后，点击登录的时候跳转到这个方法
     * 这个方法获取添加学生页面信息，即获取请求的参数
     * @param req
     * @param resp
     * @throws IOException
     */
    public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException {

        // 解决乱码问题
        req.setCharacterEncoding("utf-8");
        resp.setCharacterEncoding("utf-8");
        resp.setHeader("Content-type", "text/html;charset=UTF-8");

        String name = req.getParameter("name");// 获取学生姓名
        String sex = req.getParameter("sex");// 获取学生性别
        String speciality = req.getParameter("speciality");// 专业
        String grade = req.getParameter("grade");// 获取学生年级
        String startime = req.getParameter("startime");// 获取学生入学时间
        String endtime = req.getParameter("endtime");// 获取学生毕业实践

        Student student = new Student();
        student.setName(name);
        student.setSex(sex);
        student.setStartime(startime);
        student.setEndtime(endtime);
        student.setGrade(grade);

        StudentManager studentManager = new StudentManager();
        studentManager.addStu(student);

        System.out.println("name="+name+",sex="+sex); // 在控制台输出
        resp.getWriter().write("name="+name+",sex="+sex); //给浏览器一个响应
    }

}
